﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GrayParrot.Web.Controls
{
    [Serializable]
    public abstract class Feature<T> : FeatureBase
    {
        protected T m_default = default(T);
        private T m_value = default(T);

        public T Value
        {
            get { return (EqualityComparer<T>.Default.Equals(m_value, default(T)) ? m_default : m_value); }
            set { m_value = value; }
        }

        public Feature()
        {

        }
    }
}
